DDR3的配置及仿真教程 |
您所在的位置:网站首页 › ddr speed怎么设置 › DDR3的配置及仿真教程 |
具体的DDR的内部工作情况以及一些情况,在之前的博客写过了。 这系列博客主要是调用MIG(Memory Interface Solution) IP对DDR的控制使用,MIG由三部分组成User Interface Block 、Memory controller 和Physical Layer。IP的一边是连接DDR3的接口(Physical interface)。另一半是用户逻辑控制接口(User FPGA Logic)。想要正确的控制DDR3的读写,需要正确的设置MIG和正确的用户逻辑控制接口逻辑。 DDR3的内部结构 MIG介绍 MIG user interface 在进行创建之前,先对从用户端到MIG再到DDR3之间的时钟进行讨论分析下。 DDR3的工作时钟是由IP核产生给DDR3的CLOCK引脚的(DDR3的工作时钟)。 IP核给用户的端的时钟一般是2:1或者4:1.(用户的工作时钟) 4:1 表示在DDR3工作时钟400M情况下用户时钟为100M 2:1 表示在DDR3工作时钟400M的情况下用户时钟为200M 1:2 和1:4 区别就是用户时钟会降低 时序好过 但是对外数据接口会翻倍 浪费ram ref_clk(参考时钟)是固定的200M,用来IO校准的,如果系统时钟恰好是200M,那么两个就可以共用了。
里面有三个时钟: (1)第一个时钟:是clock period,这个时钟功能是所有控制器的工作频率,频率模块受所选FPGA和器件速度等级等因素的限制,也就是对应上图的的ddr3_clk,控制器的时钟频率和用户的时钟频率,2:1会降低最大存储器接口频率,2:1比例的用户界面数据总线宽度是物理存储器接口宽度的4倍。而4:1比率的总线宽度是物理存储器接口宽度的八倍。 2:1比率具有较低的延迟。 4:1的比率是最高数据速率所必需的)4:1。
先说app_wdf_end,DDR3实际读写的Burst=8,DDR3的数据位宽为16bit,Burst 为8,就是说每次对DDR3执行读写必须是连续的8*16 bit数据。那么在User Interface这段,如果逻辑时钟为DDR3时钟的4分频,且数据位宽为128bit,那么单个时钟周期就对应Burst=8的一次读写操作。如果数据位宽为64bit,那么必须执行2次是即开操作才能完成一次Burst=8的读写。对于前者,app_wdf_end始终为1就可以了。对于后者,app_wdf_end每写2个数据是在周期内,前一次拉低,后一次拉高。 余下三个信号app_wdf_data、app_wdf_wren和app_wdf_rdy,工作原理就和command时序类似。app_wdf_data有效,且app_wdf_wren拉高,必须app_wdf_rdy也为高,才表示当前数据写入DDR3控制器。 读时序分析 每个数据的读操作,也需要先有读command的发起,当有效读command发起后,若干个时钟周期之后,app_rd_data_valid拉高,此时app_rd_data有效,用户逻辑据此读出数据即可。对于连续读也是一样的,User Interface可以送一堆读command,这些读command必须是有效的command,随后就等着app_rd_data_valid拉高接收app_rd_data即可。
Command命令时序 简单来讲,app_cmd和app_addr有效,且app_en拉高,app_rdy拉高,则该命令成功发送给DDR3控制器;若是在app_cmd、app_addr和app_en都有效时,app_rdy为低,那么必须保持app_cmd、app_addr和app_en的有效状态,直到app_rdy拉高,那么该命令才算是成功发送给DDR3控制器。 这个clk是从MIG输出给的用户时钟(ui_clk)。 上面这些对DDR3用户端的读、写、命令时序讲述完了,以及时钟的讲述(纠结了几天终于理解了)。 二、DDR3的MIG的配置1>点击IP Catalog ->搜索mig->双击Memory Interface Generator(MIG 7 Series) ③Memory Type:此功能选择设计中使用的内存部件类型。 ④Memory Part :此选项为设计选择内存部件。 选择可以从列表中创建或者可以创建新部件。MT41K128M16XX-15E。 ⑤Memory Voltage:根据设计原理图1.35V。 ⑥Data Width:(可以根据之前选择的存储器类型在此处选择数据宽度值。 该列表显示所选部件的所有支持的数据宽度。 可以选择其中一个数据宽度。 这些值通常是各个器件数据宽度的倍数。 在某些情况下,宽度可能不是精确倍数。 例如,16位是x16组件的默认数据宽度,但8位也是有效值。)16。 ⑦Data Mask:(选择时,此选项会分配数据屏蔽引脚。 应取消选择此选项以释放数据屏蔽引脚并提高引脚效率。 此外,对于不支持数据掩码的内存部分禁用此功能。)勾选。 ③Output Driver Impedance Control:RZQ/6。 其他默认,NEXT。 ③System Reset Polarity:(可以选择系统复位(sys_rst)的极性。 如果选项选择为低电平有效,则参数RST_ACT_LOW设置为1,如果设置为高电平 - 高,则参数RST_ACT_LOW设置为0。)ACTIVE LOW。 ④Debug Signals Control:选择此选项可以将校准状态和用户端口信号端口映射到example_top模块中的ILA和VIO。 这有助于使用Vivado Design Suite调试功能监控用户界面端口上的流量。 取消选择Debug Signals Control选项会使example_top模块中的调试信号保持未连接状态,并且IP目录不会生成ILA / VIO模块。 此外,始终禁用调试端口以进行功能仿真。OFF。 ⑤Sample Data Depth:此选项选择Vivado调试逻辑中使用的ILA模块的样本数据深度。 当“内存控制器的调试信号”选项为“开”时,可以选择此选项。 ⑥Internal Verf:(内部VREF可用于数据组字节,以允许使用VREF引脚进行正常的I / O使用。 内部VREF仅应用于800 Mb / s或更低的数据速率。)勾选。 其他默认,NEXT。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |